Very often we need to convert List to DataTable, so that we can pass DataTable to Stored Procedure as Paramter in the form of tvp. In this example i will show you how to convert List to datatable.
public static DataTable ConvertToDataTable<TSource>(IEnumerable<TSource> source)
{
if (source == null)
return null;
var props = typeof(TSource).GetProperties();
var dt = new DataTable();
//dt.Columns.AddRange(pi.Name,Nullable.GetUnderlyingType(
//pi.PropertyType) ??pi.PropertyType);
dt.Columns.AddRange(
props.Select(p => new DataColumn(p.Name, Nullable.GetUnderlyingType(p.PropertyType)?? p.PropertyType)).ToArray()
);
source.ToList().ForEach(
i=> dt.Rows.Add(props.Select(p => p.GetValue(i, null)).ToArray())
);
return dt;
}
Post your comments / questions
Recent Article
- The request was aborted: Could not create SSL/TLS secure channel -Error in Asp.net
- FieldError: Cannot resolve keyword 'id' into field in Django project
- How to hide the ID field from the Django admin?
- It is impossible to add a non nullable field without specifying a default. Django error
- ImportError: cannot import name 'url' from 'django.conf.urls' - Django Error
- How to Enable Virtualization in BIOS Security Settings in Intel Processors For Android Studio?
- Dependency 'androidx.activity:activity:1.8.0' requires libraries and applications that depend on it.
- AttributeError: 'NoneType' object has no attribute 'get_text' - Python
Related Article